table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
phase.loadings <-merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE)
# Load required packages and sources
library(data.table)
library(ca)
library(reshape2)
library(rgdal)
library(raster)
library(ggplot2)
library(maps)
library(mapdata)
library(mapplots)
library(maptools)
library(geosphere)
library(beeswarm)
source("bootstrap_functions.R")
# Read in data
sites <- data.table(read.csv("working_data/zoo_summary_sites.csv"))
phases <- data.table(read.csv("working_data/zoo_summary_phase.csv"))
taxon <- data.table(read.csv("working_data/zoo_summary_taxon.csv"))
# Read in taxon/grouping info
taxa <- data.table(read.csv("working_data/taxa.csv"))
grouping <- data.table(read.csv("working_data/grouping_table.csv"))
# Select taxa to use
taxa <- merge(taxa, grouping, by="TAXON", all=TRUE)
taxa[is.na(TAXON_GROUP), TAXON_GROUP:=TAXON]
taxa <- taxa[class=="Mammalia" & NISP.count==1,]
taxa <- taxa[!order=="Cetacea" & !TAXON=="alcealc" & !TAXON=="damadam" & !TAXON=="talpeur"]
taxa <- taxa[!order=="Rodentia"|genus=="Castor"]
taxon <- merge(taxon, taxa, by="TAXON", all=FALSE)
# Filter by period and location [REMOVE IN FINAL ANALYSIS]
phases <- phases[!is.na(PHASE_FOR_OQ) & !PHASE_FOR_OQ==0]
sites <- sites[!is.na(LONG)&!is.na(LAT)]
sites <- sites[LAT > 41 & LAT < 46.5 & LONG > 13.5 & LONG < 24.5]
# Get modern climatic data
#coords <- SpatialPoints(sites[,list(LONG,LAT)])
#bio <- getData("worldclim", var="bio", res=0.5, lat=43, lon=15)
#bio.codes <- c("bio1_16", "bio4_16", "bio5_16", "bio6_16", "bio12_16", "bio16_16", "bio17_16", "bio15_16")
#bio.names <- c("mean.temp","temp.seasonality","max.temp","min.temp","precip","max.precip","min.precip","precip.seasonality")
#bio.values <- extract(bio, coords)[,bio.codes]
#bio.values[,1:4] <- bio.values[,1:4]/10 #Because the temperature fields are stored*10 to save file space
#sites <- cbind(sites, bio.values)
#setnames(sites, old=bio.codes, new=bio.names)
# Is climate really just about altitude?
# Check Jane's altitudes against the ones in worldclim
#alt <- getData("worldclim", var="alt", res=0.5, lat=43, lon=15)
#alt.values <- extract(alt, coords)
#sites <- cbind(sites, alt.values)
#with(sites[!is.na(Altitude..masl.)], plot(Altitude..masl., alt.values)) # Pretty good matches :)
#cor(sites$alt.values, sites[, list(mean.temp, min.temp, max.temp, precip, min.precip, max.precip)])
# Surprisingly weak correlations --> can't just substitute altitude in
## Load estimated anomalies
#ann.temp.8000 <- raster("EPOCH-2_Mauri_etal_QSR/tiff_anomalies/epoch2_tanom_ann_8000.tif")
#ann.temp.7000 <- raster("EPOCH-2_Mauri_etal_QSR/tiff_anomalies/epoch2_tanom_ann_7000.tif")
#ann.temp.6000 <- raster("EPOCH-2_Mauri_etal_QSR/tiff_anomalies/epoch2_tanom_ann_6000.tif")
#ann.temp.adj.8000 <- extract(ann.temp.8000, coords)
#sites <- cbind(sites, ann.temp.adj.8000)
# Merge dataset together
data <- merge(sites, phases[,list(PHASE, SITE_CODE, PHASE_FOR_OQ, RECOVERY_GROUP, FULL_LIST, FULL_DOMS)], by="SITE_CODE", all.x=FALSE, all.y=FALSE)
data <- merge(data, taxon, by="PHASE", all.x=FALSE, all.y=FALSE)
data <- data[is.na(PRESENCE_ONLY),]
# Lump phases into our analytical periods
lump.list <- c("SITE", "TAXON", "TAXON_GROUP", "PHASE_FOR_OQ", "RECOVERY_GROUP", "FULL_LIST", "FULL_DOMS", "wild_domestic_status", "ZONE", "REGION", "SITE_CODE", "LAT", "LONG", "TYPE", "Altitude..masl.")
data <- data[, j=list(NISP=sum(NISP)), by=lump.list]
data[,site.period:=paste(SITE_CODE, PHASE_FOR_OQ, sep=".")]
# Create site list for plotting
sites.for.map <- data[,j=list(NISP=sum(NISP)),by=c("SITE_CODE", "SITE", "LAT", "LONG", "PHASE_FOR_OQ", "RECOVERY_GROUP", "ZONE", "REGION", "TYPE", "Altitude..masl.")]
# Filter for sample size
period.NISP <- tapply(data$NISP, data$site.period, FUN=sum)
valid <- row.names(period.NISP)[period.NISP>199]
data <- data[site.period%in%valid,]
# Pro rata allocation
adj.data <- taxa.pro.rata(data, c("susscrf", "susscrd"), "susspec", "susscrd")
adj.data <- taxa.pro.rata(adj.data, c("bosprim", "bostaur"), "bosspec", "bostaur")
adj.data <- taxa.pro.rata(adj.data, c("canifam", "canilup"), "canispe", "canifam")
# Special case for Opovo: allocate based on DZ ratio
opovo.pigs <- adj.data[SITE_CODE=="OPO"&TAXON=="susspec", NISP]
adj.data[SITE_CODE=="OPO" & TAXON=="susscrf", NISP:=round((opovo.pigs/442)*354)]
adj.data[SITE_CODE=="OPO" & TAXON=="susscrd", NISP:=round((opovo.pigs/442)*88)]
adj.data <- adj.data[!(SITE_CODE=="OPO"&TAXON=="susspec")]
# Special case for Lisičići: "wild goat" probably actually domestic caprines
adj.data[SITE_CODE=="LIS"&TAXON=="rupirup", TAXON_GROUP:="oviscap"]
# Create table for GIS plotting (%wild, main doms)
# First wild vs domestic ratios
adj.data[TAXON_GROUP=="equuspe", wild_domestic_status:="wild"]
wild.dom <- adj.data[, sum(NISP), by=c("SITE_CODE", "site.period","wild_domestic_status", "ZONE", "REGION", "PHASE_FOR_OQ")]
wild.dom <- dcast.data.table(wild.dom, SITE_CODE+site.period+ZONE+REGION+PHASE_FOR_OQ ~ wild_domestic_status, value.var="V1", fun=sum, fill=0)
# Then frequencies of the main domesticates
doms <- adj.data[TAXON_GROUP %in% c("bostaur", "susscrd", "oviscap"),]
doms <- dcast.data.table(doms, SITE_CODE+site.period ~ TAXON_GROUP, value.var="NISP", fun=sum, fill=0)
# Then merge them and bring the basic site info back in
basic.taxa <- merge(wild.dom, doms, by=c("SITE_CODE", "site.period"), all=FALSE)
basic.taxa <- merge(sites.for.map, basic.taxa, by=c("SITE_CODE", "ZONE", "REGION", "PHASE_FOR_OQ"), all=FALSE)
basic.taxa[,pc.wild:=wild/(wild+domestic)*100]
basic.taxa[,pc.cattle:=bostaur/(bostaur+susscrd+oviscap)*100]
basic.taxa[,pc.pigs:=susscrd/(bostaur+susscrd+oviscap)*100]
basic.taxa[,pc.caprines:=oviscap/(bostaur+susscrd+oviscap)*100]
codes <- data.table(SITE_NUM = seq_along(unique(basic.taxa$SITE_CODE)), SITE_CODE = unique(basic.taxa$SITE_CODE))
basic.taxa <- merge(basic.taxa, codes, by="SITE_CODE")
basic.taxa[, diff:=c(1, diff(SITE_NUM))]
basic.taxa[diff==0, SITE_NUM:=NA]
write.csv(basic.taxa, "basic.taxa.csv", row.names=FALSE)
col.codes <- data.table(read.csv("RGB colours.csv"))
cols <- rgb(col.codes$red, col.codes$green, col.codes$blue, col.codes$alpha, names=col.codes$Region, maxColorValue = 255)
basic.taxa$REGION <- droplevels(basic.taxa$REGION)
type.symbols = c(24,21)
par(mfrow=c(4,3), mar=c(1.6, 1.6, 1.6, 1.6), oma=c(1, 3.5, 1.5, 0), xpd=NA)
with(basic.taxa[PHASE_FOR_OQ==1], boxplot(pc.wild ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Early", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylab="% wild", ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==1], beeswarm(pc.wild ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==2], boxplot(pc.wild ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Middle", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==2], beeswarm(pc.wild ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==3], boxplot(pc.wild ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Late", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==3], beeswarm(pc.wild ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
#plot.new()
#legend("topleft", title="Adriatic sub-regions", bty="n", pch=21, cex=1.2, pt.bg=col.list[unique(basic.taxa[ZONE=="Adriatic", REGION])], legend=unique(basic.taxa[ZONE=="Adriatic", REGION]))
with(basic.taxa[PHASE_FOR_OQ==1], boxplot(pc.pigs ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylab="% pigs", ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==1], beeswarm(pc.pigs ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==2], boxplot(pc.pigs ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==2], beeswarm(pc.pigs ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==3], boxplot(pc.pigs ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==3], beeswarm(pc.pigs ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
#plot.new()
#legend("topleft", title="Continental sub-regions", bty="n", pch=21, cex=1.2, pt.bg=col.list[unique(basic.taxa[ZONE=="Continental", REGION])], legend=unique(basic.taxa[ZONE=="Continental", REGION]))
with(basic.taxa[PHASE_FOR_OQ==1], boxplot(pc.cattle ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylab="% cattle", ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==1], beeswarm(pc.cattle ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==2], boxplot(pc.cattle ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==2], beeswarm(pc.cattle ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==3], boxplot(pc.cattle ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==3], beeswarm(pc.cattle ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
#plot.new()
with(basic.taxa[PHASE_FOR_OQ==1], boxplot(pc.caprines ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylab="% caprines", ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==1], beeswarm(pc.caprines ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==2], boxplot(pc.caprines ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==2], beeswarm(pc.caprines ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==3], boxplot(pc.caprines ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==3], beeswarm(pc.caprines ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=cols[REGION], add=TRUE))
#plot.new()
#Check for effcts of recovery
basic.taxa[is.na(RECOVERY_GROUP) | RECOVERY_GROUP==9, RECOVERY_GROUP := 4]
sieve.cols = c("red", "orange", "yellow", "green", "white")
par(mfrow=c(4,3), mar=c(1.6, 1.6, 1.6, 1.6), oma=c(1, 3.5, 1.5, 0), xpd=NA)
with(basic.taxa[PHASE_FOR_OQ==1], boxplot(pc.wild ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Early", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylab="% wild", ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==1], beeswarm(pc.wild ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==2], boxplot(pc.wild ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Middle", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==2], beeswarm(pc.wild ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==3], boxplot(pc.wild ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Late", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==3], beeswarm(pc.wild ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==1], boxplot(pc.pigs ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Early", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylab="% pig", ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==1], beeswarm(pc.pigs ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==2], boxplot(pc.pigs ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Middle", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==2], beeswarm(pc.pigs ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==3], boxplot(pc.pigs ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Late", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==3], beeswarm(pc.pigs ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==1], boxplot(pc.cattle ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Early", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylab="% cattle", ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==1], beeswarm(pc.cattle ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==2], boxplot(pc.cattle ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Middle", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==2], beeswarm(pc.cattle ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==3], boxplot(pc.cattle ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Late", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==3], beeswarm(pc.cattle ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==1], boxplot(pc.caprines ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Early", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylab="% caprines", ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==1], beeswarm(pc.caprines ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
legend("bottomleft", pch=21, pt.bg=sieve.cols, legend=c("No sieving", "Limited sieving", "Frequent sieving", "100% sieved", "Unknown"))
with(basic.taxa[PHASE_FOR_OQ==2], boxplot(pc.caprines ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Middle", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==2], beeswarm(pc.caprines ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
with(basic.taxa[PHASE_FOR_OQ==3], boxplot(pc.caprines ~ ZONE, outline=FALSE, col=rgb(0.2, 0.2, 0.2, 0.2), main="Late", cex.lab=1.2, cex.axis=1.2, cex=1.2, ylim=c(0,100)))
with(basic.taxa[PHASE_FOR_OQ==3], beeswarm(pc.caprines ~ ZONE, pch=21, cex=1.2, spacing=1.5, pwpch=type.symbols[TYPE], pwbg=sieve.cols[RECOVERY_GROUP+1],  add=TRUE))
par(mfrow=c(1,1))
adj.data <- adj.data[!SITE == "Pokrovnik",]
phase.loadings <-merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE)
#write.csv(ca.results, "ca_results.csv")
#taxon.loadings[order(rownames(taxon.loadings)),]
z <- row.names(taxon.loadings)
taxon.loadings <- data.table(cbind(taxon.loadings, TAXON=z))
taxon.loadings <- merge(taxon.loadings, taxa[,list(TAXON, genus)], by="TAXON", all.x=TRUE, all.y=FALSE)
taxon.loadings[TAXON=="bosprim", genus:="Bos (wild)"]
taxon.loadings[TAXON=="bostaur", genus:="Bos (dom.)"]
taxon.loadings[TAXON=="susscrf", genus:="Sus (wild)"]
taxon.loadings[TAXON=="susscrd", genus:="Sus (dom.)"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="canifam", genus:="Canis (dom.)"]
taxon.loadings[TAXON=="canilup", genus:="Canis (wild)"]
taxon.loadings[TAXON=="furry", genus:="Small carnivore"]
taxon.loadings$Dim1 <- as.numeric(taxon.loadings$Dim1)
taxon.loadings$Dim2 <- as.numeric(taxon.loadings$Dim2)
#CA site plots
par(mfrow=c(2,2), pty="s", mar=c(1.6, 1.6, 1, 0.6), oma=c(3.5, 3.5, 0, 0), xpd=NA)
table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
furry <- c("martspe", "mustspe", "lynxlyn", "vulpvul", "lutrlut", "felisil", "melemel")
adj.data[, CA_TAXON := TAXON_GROUP]
adj.data[TAXON_GROUP %in% furry, CA_TAXON := "furry"]
table <- dcast.data.table(adj.data, site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
phase.loadings <-merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE)
z <- row.names(taxon.loadings)
taxon.loadings <- data.table(cbind(taxon.loadings, TAXON=z))
taxon.loadings <- merge(taxon.loadings, taxa[,list(TAXON, genus)], by="TAXON", all.x=TRUE, all.y=FALSE)
taxon.loadings[TAXON=="bosprim", genus:="Bos (wild)"]
taxon.loadings[TAXON=="bostaur", genus:="Bos (dom.)"]
taxon.loadings[TAXON=="susscrf", genus:="Sus (wild)"]
taxon.loadings[TAXON=="susscrd", genus:="Sus (dom.)"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="canifam", genus:="Canis (dom.)"]
taxon.loadings[TAXON=="canilup", genus:="Canis (wild)"]
taxon.loadings[TAXON=="furry", genus:="Small carnivore"]
taxon.loadings$Dim1 <- as.numeric(taxon.loadings$Dim1)
taxon.loadings$Dim2 <- as.numeric(taxon.loadings$Dim2)
par(mfrow=c(2,2), pty="s", mar=c(1.6, 1.6, 1, 0.6), oma=c(3.5, 3.5, 0, 0), xpd=NA)
#CA taxon plot
major.taxa <- c("Ovis/Capra", "Sus (dom.)", "Sus (wild)", "Bos (dom.)", "Cervus", "Capreolus")
black <- as.numeric(taxon.loadings$genus %in% major.taxa) +1
label.pos <- c(2, 3, 4, 4, 1, 2, 3, 2, 1, 4, 3, 4, 3, 4, 2, 3)
bi.col <- c("gray52", "black")
xlims <- c(min(taxon.loadings$Dim1, ca.results$Dim1)-0.35, max(taxon.loadings$Dim1, ca.results$Dim1)+0.1)
ylims <- c(min(taxon.loadings$Dim2, ca.results$Dim2)-0.1, max(taxon.loadings$Dim2, ca.results$Dim2)+0.1)
with(taxon.loadings, plot(Dim1, Dim2, pch=4, xlab="", col=bi.col[black], ylab="Dimension 2", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(taxon.loadings, text(Dim1, Dim2, labels=genus, cex=1, col=bi.col[black], font=3, pos=label.pos))
legend("topright", legend="A: taxon loadings", cex=1.1, bty="n")
with(taxon.loadings, plot(Dim1, Dim2, pch=4, col=bi.col[black], xlab="", ylab="", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(ca.results[PHASE_FOR_OQ==1], points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=cols[REGION]))
legend("topright", legend="B: c.6100-5500 cal. BC", cex=1.1, bty="n")
View(phase.loadings)
xlims <- c(min(taxon.loadings$Dim1, phase.loadings$Dim1)-0.35, max(phase.loadings$Dim1, ca.results$Dim1)+0.1)
ylims <- c(min(taxon.loadings$Dim2, phase.loadings$Dim2)-0.1, max(phase.loadings$Dim2, ca.results$Dim2)+0.1)
xlims <- c(min(taxon.loadings$Dim1, phase.loadings$Dim1)-0.35, max(taxon.loadings$Dim1, phase.loadings$Dim1)+0.1)
ylims <- c(min(taxon.loadings$Dim2, phase.loadings$Dim2)-0.1, max(taxon.loadings$Dim2, phase.loadings$Dim2)+0.1)
with(taxon.loadings, plot(Dim1, Dim2, pch=4, xlab="", col=bi.col[black], ylab="Dimension 2", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(taxon.loadings, text(Dim1, Dim2, labels=genus, cex=1, col=bi.col[black], font=3, pos=label.pos))
legend("topright", legend="A: taxon loadings", cex=1.1, bty="n")
View(phase.loadings)
xlims <- c(min(taxon.loadings$Dim1, phase.loadings$Dim1)-0.35, max(taxon.loadings$Dim1, phase.loadings$Dim1)+0.1)
max(phase.loadings$Dim1)
#write.csv(ca.results, "ca_results.csv")
#taxon.loadings[order(rownames(taxon.loadings)),]
z <- row.names(taxon.loadings)
taxon.loadings <- data.table(cbind(taxon.loadings, TAXON=z))
taxon.loadings <- merge(taxon.loadings, taxa[,list(TAXON, genus)], by="TAXON", all.x=TRUE, all.y=FALSE)
taxon.loadings[TAXON=="bosprim", genus:="Bos (wild)"]
taxon.loadings[TAXON=="bostaur", genus:="Bos (dom.)"]
taxon.loadings[TAXON=="susscrf", genus:="Sus (wild)"]
taxon.loadings[TAXON=="susscrd", genus:="Sus (dom.)"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="canifam", genus:="Canis (dom.)"]
taxon.loadings[TAXON=="canilup", genus:="Canis (wild)"]
taxon.loadings[TAXON=="furry", genus:="Small carnivore"]
taxon.loadings$Dim1 <- as.numeric(taxon.loadings$Dim1)
taxon.loadings$Dim2 <- as.numeric(taxon.loadings$Dim2)
phase.loadings <-merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE)
phase.loadings$Dim1 <- as.numeric(phase.loadings$Dim1)
phase.loadings$Dim2 <- as.numeric(phase.loadings$Dim2)
#CA site plots
par(mfrow=c(2,2), pty="s", mar=c(1.6, 1.6, 1, 0.6), oma=c(3.5, 3.5, 0, 0), xpd=NA)
#CA taxon plot
major.taxa <- c("Ovis/Capra", "Sus (dom.)", "Sus (wild)", "Bos (dom.)", "Cervus", "Capreolus")
black <- as.numeric(taxon.loadings$genus %in% major.taxa) +1
label.pos <- c(2, 3, 4, 4, 1, 2, 3, 2, 1, 4, 3, 4, 3, 4, 2, 3)
bi.col <- c("gray52", "black")
xlims <- c(min(taxon.loadings$Dim1, phase.loadings$Dim1)-0.35, max(taxon.loadings$Dim1, phase.loadings$Dim1)+0.1)
ylims <- c(min(taxon.loadings$Dim2, phase.loadings$Dim2)-0.1, max(taxon.loadings$Dim2, phase.loadings$Dim2)+0.1)
with(taxon.loadings, plot(Dim1, Dim2, pch=4, xlab="", col=bi.col[black], ylab="Dimension 2", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(taxon.loadings, text(Dim1, Dim2, labels=genus, cex=1, col=bi.col[black], font=3, pos=label.pos))
legend("topright", legend="A: taxon loadings", cex=1.1, bty="n")
max(phase.loadings$Dim1)
View(phase.loadings)
table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
#write.csv(ca.results, "ca_results.csv")
#taxon.loadings[order(rownames(taxon.loadings)),]
z <- row.names(taxon.loadings)
taxon.loadings <- data.table(cbind(taxon.loadings, TAXON=z))
taxon.loadings <- merge(taxon.loadings, taxa[,list(TAXON, genus)], by="TAXON", all.x=TRUE, all.y=FALSE)
taxon.loadings[TAXON=="bosprim", genus:="Bos (wild)"]
taxon.loadings[TAXON=="bostaur", genus:="Bos (dom.)"]
taxon.loadings[TAXON=="susscrf", genus:="Sus (wild)"]
taxon.loadings[TAXON=="susscrd", genus:="Sus (dom.)"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="canifam", genus:="Canis (dom.)"]
taxon.loadings[TAXON=="canilup", genus:="Canis (wild)"]
taxon.loadings[TAXON=="furry", genus:="Small carnivore"]
taxon.loadings$Dim1 <- as.numeric(taxon.loadings$Dim1)
taxon.loadings$Dim2 <- as.numeric(taxon.loadings$Dim2)
phase.loadings <-merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE)
View(phase.loadings)
phase.loadings$Dim1 <- as.numeric(levels(phase.loadings$Dim1))
phase.loadings$Dim2 <- as.numeric(levels(phase.loadings$Dim2))
table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
#write.csv(ca.results, "ca_results.csv")
#taxon.loadings[order(rownames(taxon.loadings)),]
z <- row.names(taxon.loadings)
taxon.loadings <- data.table(cbind(taxon.loadings, TAXON=z))
taxon.loadings <- merge(taxon.loadings, taxa[,list(TAXON, genus)], by="TAXON", all.x=TRUE, all.y=FALSE)
taxon.loadings[TAXON=="bosprim", genus:="Bos (wild)"]
taxon.loadings[TAXON=="bostaur", genus:="Bos (dom.)"]
taxon.loadings[TAXON=="susscrf", genus:="Sus (wild)"]
taxon.loadings[TAXON=="susscrd", genus:="Sus (dom.)"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="canifam", genus:="Canis (dom.)"]
taxon.loadings[TAXON=="canilup", genus:="Canis (wild)"]
taxon.loadings[TAXON=="furry", genus:="Small carnivore"]
taxon.loadings$Dim1 <- as.numeric(taxon.loadings$Dim1)
taxon.loadings$Dim2 <- as.numeric(taxon.loadings$Dim2)
phase.loadings <-merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE)
phase.loadings$Dim1 <- as.numeric(levels(phase.loadings$Dim1))
phase.loadings$Dim2 <- as.numeric(levels(phase.loadings$Dim2))
table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
#write.csv(ca.results, "ca_results.csv")
#taxon.loadings[order(rownames(taxon.loadings)),]
z <- row.names(taxon.loadings)
taxon.loadings <- data.table(cbind(taxon.loadings, TAXON=z))
taxon.loadings <- merge(taxon.loadings, taxa[,list(TAXON, genus)], by="TAXON", all.x=TRUE, all.y=FALSE)
taxon.loadings[TAXON=="bosprim", genus:="Bos (wild)"]
taxon.loadings[TAXON=="bostaur", genus:="Bos (dom.)"]
taxon.loadings[TAXON=="susscrf", genus:="Sus (wild)"]
taxon.loadings[TAXON=="susscrd", genus:="Sus (dom.)"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="canifam", genus:="Canis (dom.)"]
taxon.loadings[TAXON=="canilup", genus:="Canis (wild)"]
taxon.loadings[TAXON=="furry", genus:="Small carnivore"]
taxon.loadings$Dim1 <- as.numeric(taxon.loadings$Dim1)
taxon.loadings$Dim2 <- as.numeric(taxon.loadings$Dim2)
phase.loadings <-merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE)
phase.loadings$Dim1 <- as.numeric(as.character(phase.loadings$Dim1))
phase.loadings$Dim2 <- as.numeric(as.character(phase.loadings$Dim2))
#CA site plots
par(mfrow=c(2,2), pty="s", mar=c(1.6, 1.6, 1, 0.6), oma=c(3.5, 3.5, 0, 0), xpd=NA)
#CA taxon plot
major.taxa <- c("Ovis/Capra", "Sus (dom.)", "Sus (wild)", "Bos (dom.)", "Cervus", "Capreolus")
black <- as.numeric(taxon.loadings$genus %in% major.taxa) +1
label.pos <- c(2, 3, 4, 4, 1, 2, 3, 2, 1, 4, 3, 4, 3, 4, 2, 3)
bi.col <- c("gray52", "black")
xlims <- c(min(taxon.loadings$Dim1, phase.loadings$Dim1)-0.35, max(taxon.loadings$Dim1, phase.loadings$Dim1)+0.1)
ylims <- c(min(taxon.loadings$Dim2, phase.loadings$Dim2)-0.1, max(taxon.loadings$Dim2, phase.loadings$Dim2)+0.1)
with(taxon.loadings, plot(Dim1, Dim2, pch=4, xlab="", col=bi.col[black], ylab="Dimension 2", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(taxon.loadings, text(Dim1, Dim2, labels=genus, cex=1, col=bi.col[black], font=3, pos=label.pos))
legend("topright", legend="A: taxon loadings", cex=1.1, bty="n")
with(taxon.loadings, plot(Dim1, Dim2, pch=4, col=bi.col[black], xlab="", ylab="", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(ca.results[PHASE_FOR_OQ==1], points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=cols[REGION]))
legend("topright", legend="B: c.6100-5500 cal. BC", cex=1.1, bty="n")
with(phase.loadings[PHASE_FOR_OQ==1], points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=cols[REGION]))
View(phase.loadings)
View(phase.loadings)
phase.loadings$PHASE_FOR_OQ
table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
View(phase.loadings)
phase.loadings <-merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE)
View(phase.loadings)
phase.loadings$Dim1 <- as.numeric(as.character(phase.loadings$Dim1))
phase.loadings$Dim2 <- as.numeric(as.character(phase.loadings$Dim2))
with(phase.loadings[PHASE_FOR_OQ==1,], points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=cols[REGION]))
phase.loadings[PHASE_FOR_OQ==1,]
phase.loadings[PHASE_FOR_OQ]
phase.loadings <- data.table(merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE))
table <- dcast.data.table(adj.data, site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
#write.csv(ca.results, "ca_results.csv")
#taxon.loadings[order(rownames(taxon.loadings)),]
z <- row.names(taxon.loadings)
taxon.loadings <- data.table(cbind(taxon.loadings, TAXON=z))
taxon.loadings <- merge(taxon.loadings, taxa[,list(TAXON, genus)], by="TAXON", all.x=TRUE, all.y=FALSE)
taxon.loadings[TAXON=="bosprim", genus:="Bos (wild)"]
taxon.loadings[TAXON=="bostaur", genus:="Bos (dom.)"]
taxon.loadings[TAXON=="susscrf", genus:="Sus (wild)"]
taxon.loadings[TAXON=="susscrd", genus:="Sus (dom.)"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="canifam", genus:="Canis (dom.)"]
taxon.loadings[TAXON=="canilup", genus:="Canis (wild)"]
taxon.loadings[TAXON=="furry", genus:="Small carnivore"]
taxon.loadings$Dim1 <- as.numeric(taxon.loadings$Dim1)
taxon.loadings$Dim2 <- as.numeric(taxon.loadings$Dim2)
phase.loadings <- data.table(merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE))
phase.loadings$Dim1 <- as.numeric(phase.loadings$Dim1)
View(phase.loadings)
table <- dcast.data.table(adj.data, site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
table <- dcast.data.table(adj.data[!TAXON_GROUP=="equuspe"], site.period ~ CA_TAXON, value.var="NISP", fun=sum, fill=0)
phase.names <- table[, site.period]
table[,site.period:=NULL]
x <- as.matrix(table)
y <- plot(ca(x))
phase.loadings <- cbind(y[[1]], site.period=phase.names)
taxon.loadings <- y[[2]]
#write.csv(ca.results, "ca_results.csv")
#taxon.loadings[order(rownames(taxon.loadings)),]
z <- row.names(taxon.loadings)
taxon.loadings <- data.table(cbind(taxon.loadings, TAXON=z))
taxon.loadings <- merge(taxon.loadings, taxa[,list(TAXON, genus)], by="TAXON", all.x=TRUE, all.y=FALSE)
taxon.loadings[TAXON=="bosprim", genus:="Bos (wild)"]
taxon.loadings[TAXON=="bostaur", genus:="Bos (dom.)"]
taxon.loadings[TAXON=="susscrf", genus:="Sus (wild)"]
taxon.loadings[TAXON=="susscrd", genus:="Sus (dom.)"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="capribe", genus:="Capra ibex"]
taxon.loadings[TAXON=="canifam", genus:="Canis (dom.)"]
taxon.loadings[TAXON=="canilup", genus:="Canis (wild)"]
taxon.loadings[TAXON=="furry", genus:="Small carnivore"]
taxon.loadings$Dim1 <- as.numeric(taxon.loadings$Dim1)
taxon.loadings$Dim2 <- as.numeric(taxon.loadings$Dim2)
phase.loadings <- data.table(merge(phase.loadings, basic.taxa[, list(PHASE_FOR_OQ, site.period, RECOVERY_GROUP, ZONE, REGION, TYPE, SITE_CODE, LAT, LONG)], by="site.period", all=FALSE))
phase.loadings$Dim1 <- as.numeric(as.character(phase.loadings$Dim1))
phase.loadings$Dim2 <- as.numeric(as.character(phase.loadings$Dim2))
#CA site plots
par(mfrow=c(2,2), pty="s", mar=c(1.6, 1.6, 1, 0.6), oma=c(3.5, 3.5, 0, 0), xpd=NA)
#CA taxon plot
major.taxa <- c("Ovis/Capra", "Sus (dom.)", "Sus (wild)", "Bos (dom.)", "Cervus", "Capreolus")
black <- as.numeric(taxon.loadings$genus %in% major.taxa) +1
label.pos <- c(2, 3, 4, 4, 1, 2, 3, 2, 1, 4, 3, 4, 3, 4, 2, 3)
bi.col <- c("gray52", "black")
xlims <- c(min(taxon.loadings$Dim1, phase.loadings$Dim1)-0.35, max(taxon.loadings$Dim1, phase.loadings$Dim1)+0.1)
ylims <- c(min(taxon.loadings$Dim2, phase.loadings$Dim2)-0.1, max(taxon.loadings$Dim2, phase.loadings$Dim2)+0.1)
with(taxon.loadings, plot(Dim1, Dim2, pch=4, xlab="", col=bi.col[black], ylab="Dimension 2", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(taxon.loadings, text(Dim1, Dim2, labels=genus, cex=1, col=bi.col[black], font=3, pos=label.pos))
legend("topright", legend="A: taxon loadings", cex=1.1, bty="n")
with(taxon.loadings, plot(Dim1, Dim2, pch=4, col=bi.col[black], xlab="", ylab="", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(phase.loadings[PHASE_FOR_OQ==1,], points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=cols[REGION]))
legend("topright", legend="B: c.6100-5500 cal. BC", cex=1.1, bty="n")
with(taxon.loadings, plot(Dim1, Dim2, pch=4, col=bi.col[black], xlab="Dimension 1", ylab="Dimension 2", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(phase.loadings[PHASE_FOR_OQ==2], points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=cols[REGION]))
legend("topright", legend="C: c.5500-5000 cal. BC", cex=1.1, bty="n")
with(taxon.loadings, plot(Dim1, Dim2, pch=4, col=bi.col[black], xlab="Dimension 1", ylab="", xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(phase.loadings[PHASE_FOR_OQ==3], points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=cols[REGION]))
legend("topright", legend="D: c.5000-4500 cal. BC", cex=1.1, bty="n")
col.codes <- col.codes[order(order)]
legend.cols <- rgb(col.codes$red, col.codes$green, col.codes$blue, col.codes$alpha, names=col.codes$Region, maxColorValue = 255)
legend("bottomright", pch=21, cex=0.9, pt.bg=legend.cols, legend=col.codes$Region)
#CA by recovery
xlims <- c(min(taxon.loadings$Dim1, ca.results$Dim1)-0.35, max(taxon.loadings$Dim1, ca.results$Dim1)+0.1)
ylims <- c(min(taxon.loadings$Dim2, ca.results$Dim2)-0.1, max(taxon.loadings$Dim2, ca.results$Dim2)+0.1)
with(taxon.loadings, plot(Dim1, Dim2, pch=4, xlab="Dimension 1", ylab="Dimension 2", col=bi.col[black], xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(taxon.loadings, text(Dim1, Dim2, labels=genus, cex=1, col=bi.col[black], font=3, pos=label.pos))
with(phase.loadings, points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=sieve.cols[RECOVERY_GROUP+1]))
legend("topright", pch=21, pt.bg=sieve.cols, legend=c("No sieving", "Limited sieving", "Frequent sieving", "100% sieved", "Unknown"))
#CA by recovery
with(taxon.loadings, plot(Dim1, Dim2, pch=4, xlab="Dimension 1", ylab="Dimension 2", col=bi.col[black], xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(taxon.loadings, text(Dim1, Dim2, labels=genus, cex=1, col=bi.col[black], font=3, pos=label.pos))
with(phase.loadings, points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=sieve.cols[RECOVERY_GROUP+1]))
legend("topright", pch=21, pt.bg=sieve.cols, legend=c("No sieving", "Limited sieving", "Frequent sieving", "100% sieved", "Unknown"))
par(mfrow=c(1,1))
#CA by recovery
with(taxon.loadings, plot(Dim1, Dim2, pch=4, xlab="Dimension 1", ylab="Dimension 2", col=bi.col[black], xlim=xlims, ylim=ylims, cex.lab=0.9, cex.axis=0.9))
with(taxon.loadings, text(Dim1, Dim2, labels=genus, cex=1, col=bi.col[black], font=3, pos=label.pos))
with(phase.loadings, points(Dim1, Dim2, pch=type.symbols[TYPE], cex=1.2, bg=sieve.cols[RECOVERY_GROUP+1]))
legend("topright", pch=21, pt.bg=sieve.cols, legend=c("No sieving", "Limited sieving", "Frequent sieving", "100% sieved", "Unknown"))
